var ProfessorController = require('../controllers/professor.controller'),
    SecretarioController = require('../controllers/secretario.controller'),
    CursoController = require('../controllers/curso.controller'),
    DepartamentoController = require('../controllers/departamento.controller'),
    DisciplinaController = require('../controllers/disciplina.controller'),
    ProjetoController = require('../controllers/projeto.controller'),
    TurmaController = require('../controllers/turma.controller');

function Facade() {
    var professorController = new ProfessorController();
    var secretarioController = new SecretarioController();
    var cursoController = new CursoController();
    var departamentoController = new DepartamentoController();
    var disciplinaController = new DisciplinaController();
    var projetoController = new ProjetoController();
    var turmaController = new TurmaController();

    //FIXME
    this.addProfessor = function(req) {
        professorController.add(req);
    }

    //FIXME
    this.addSecretario = function(req) {
        secretarioController.add(req);
    }

    this.addCurso = function(nome, departamento, callback) {
        cursoController.add(nome, departamento, callback);
    }

    this.addDisciplina = function(nome, carga, curso, callback) {
        disciplinaController.add(nome, carga, curso, callback);
    }

    this.addDepartamento = function(nome, callback) {
        departamentoController.add(nome, callback);
    }

    this.addProjeto = function(nome, tipo, callback) {
        projetoController.add(nome, tipo, callback);
    }

    this.addTurma = function(disciplina, vagas, horario) {
        turmaController.add(disciplina, vagas, horario);
    }

    this.getDepartamento = function(nome, callback) {
        departamentoController.get(nome, callback);
    }

    this.getDepartamentoById = function(id, callback) {
        departamentoController.getById(id, callback);
    }

    this.getAllDepartamentos = function(callback) {
        departamentoController.getAll(callback);
    }

    this.getTurmasById = function(id, callback) {
        turmaController.getById(id, callback);
    }

    this.getAllTurmas = function(callback) {
        turmaController.getAll(callback);
    }

    this.getProjetoById = function(id, callback) {
        projetoController.getById(id, callback);
    }

    this.getAllProjetos = function(callback) {
        projetoController.getAll(callback);
    }

    this.getDisciplinaById = function(id, callback) {
        disciplinaController.getById(id, callback);
    }

    this.getAllDisciplinas = function(callback) {
        disciplinaController.getAll(callback);
    }

    this.getCursoById = function(id, callback) {
        cursoController.getById(id, callback);
    }

    this.getAllCursos = function(callback) {
        cursoController.getAll(callback);
    }

    this.getProfessorById = function(id, callback) {
        professorController.getById(id, callback);
    }

    this.getAllProfessores = function(callback) {
        professorController.getAll(callback);
    }

    this.getSecretarioById = function(id, callback) {
        secretarioController.getById(id, callback);
    }

    this.getAllSecretarios = function(callback) {
        secretarioController.getAll(callback);
    }
}


module.exports = new Facade();
